﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

void menu();
int Add(int a, int b);
int Sub(int a, int b);
int Mul(int a, int b);
int Div(int a, int b);

int main()
{
	menu();//打印菜单
	int num1, num2;
	int input = 0;

	do {
		int (*arr[5])(int, int) = { NULL,Add,Sub,Mul,Div };//转移表（函数指针数组）
		printf("选择功能>>:");
		scanf("%d", &input);
		if (input >= 1 && input <= 4)
		{
			printf("输入两个数>>:");
			scanf("%d %d", &num1, &num2);
			int ret = arr[input](num1, num2);//根据选择的功能调用函数
			printf("%d\n", ret);
		}
		else if(input<0 || input>4)
		{
			printf("输入错误!\n");
		}
	} while (input);

}

void menu()
{
	printf("**************************************************\n");
	printf("*******1.Add                        2.Sub*********\n");
	printf("*******3.Mul                        4.Div*********\n");
	printf("*******0.exit                            *********\n");
	printf("**************************************************\n");
}

int Add(int a, int b)
{
	return a + b;
}
int Sub(int a, int b)
{
	return a - b;
}
int Mul(int a, int b)
{
	return a * b;
}
int Div(int a, int b)
{
	return a / b;
}